<?php

namespace RecetteAnne\ApplicationBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Utilisateur
 *
 * @ORM\Table(name="utilisateur", indexes={@ORM\Index(name="FK_UTILISATEUR_REF_PROFIL", columns={"ref_profil"})})
 * @ORM\Entity
 */
class Utilisateur {

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=200, nullable=false)
     */
    private $email;

    /**
     * @var string
     *
     * @ORM\Column(name="password", type="string", length=160, nullable=false)
     */
    private $password;

    /**
     * @var string
     *
     * @ORM\Column(name="nom", type="string", length=100, nullable=false)
     */
    private $nom;

    /**
     * @var string
     *
     * @ORM\Column(name="prenom", type="string", length=100, nullable=false)
     */
    private $prenom;

    /**
     * @var string
     *
     * @ORM\Column(name="token_modification_password", type="string", length=50, nullable=false)
     */
    private $tokenModificationPassword;

    /**
     * @var integer
     *
     * @ORM\Column(name="nombre_connexion_echec", type="smallint", nullable=false)
     */
    private $nombreConnexionEchec;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="date_creation", type="datetime", nullable=false)
     */
    private $dateCreation;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="date_suppression", type="datetime", nullable=false)
     */
    private $dateSuppression;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="date_derniere_connexion", type="datetime", nullable=false)
     */
    private $dateDerniereConnexion;

    /**
     * @var \Profil
     *
     * @ORM\ManyToOne(targetEntity="Profil")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="ref_profil", referencedColumnName="id")
     * })
     */
    private $refProfil;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set email
     *
     * @param string $email
     * @return Utilisateur
     */
    public function setEmail($email) {
        $this->email = $email;

        return $this;
    }

    /**
     * Get email
     *
     * @return string 
     */
    public function getEmail() {
        return $this->email;
    }

    /**
     * Set password
     *
     * @param string $password
     * @return Utilisateur
     */
    public function setPassword($password) {
        $this->password = $password;

        return $this;
    }

    /**
     * Get password
     *
     * @return string 
     */
    public function getPassword() {
        return $this->password;
    }

    /**
     * Set nom
     *
     * @param string $nom
     * @return Utilisateur
     */
    public function setNom($nom) {
        $this->nom = $nom;

        return $this;
    }

    /**
     * Get nom
     *
     * @return string 
     */
    public function getNom() {
        return $this->nom;
    }

    /**
     * Set prenom
     *
     * @param string $prenom
     * @return Utilisateur
     */
    public function setPrenom($prenom) {
        $this->prenom = $prenom;

        return $this;
    }

    /**
     * Get prenom
     *
     * @return string 
     */
    public function getPrenom() {
        return $this->prenom;
    }

    /**
     * Set tokenModificationPassword
     *
     * @param string $tokenModificationPassword
     * @return Utilisateur
     */
    public function setTokenModificationPassword($tokenModificationPassword) {
        $this->tokenModificationPassword = $tokenModificationPassword;

        return $this;
    }

    /**
     * Get tokenModificationPassword
     *
     * @return string 
     */
    public function getTokenModificationPassword() {
        return $this->tokenModificationPassword;
    }

    /**
     * Set nombreConnexionEchec
     *
     * @param integer $nombreConnexionEchec
     * @return Utilisateur
     */
    public function setNombreConnexionEchec($nombreConnexionEchec) {
        $this->nombreConnexionEchec = $nombreConnexionEchec;

        return $this;
    }

    /**
     * Get nombreConnexionEchec
     *
     * @return integer 
     */
    public function getNombreConnexionEchec() {
        return $this->nombreConnexionEchec;
    }

    /**
     * Set dateCreation
     *
     * @param \DateTime $dateCreation
     * @return Utilisateur
     */
    public function setDateCreation($dateCreation) {
        $this->dateCreation = $dateCreation;

        return $this;
    }

    /**
     * Get dateCreation
     *
     * @return \DateTime 
     */
    public function getDateCreation() {
        return $this->dateCreation;
    }

    /**
     * Set dateSuppression
     *
     * @param \DateTime $dateSuppression
     * @return Utilisateur
     */
    public function setDateSuppression($dateSuppression) {
        $this->dateSuppression = $dateSuppression;

        return $this;
    }

    /**
     * Get dateSuppression
     *
     * @return \DateTime 
     */
    public function getDateSuppression() {
        return $this->dateSuppression;
    }

    /**
     * Set dateDerniereConnexion
     *
     * @param \DateTime $dateDerniereConnexion
     * @return Utilisateur
     */
    public function setDateDerniereConnexion($dateDerniereConnexion) {
        $this->dateDerniereConnexion = $dateDerniereConnexion;

        return $this;
    }

    /**
     * Get dateDerniereConnexion
     *
     * @return \DateTime 
     */
    public function getDateDerniereConnexion() {
        return $this->dateDerniereConnexion;
    }

    /**
     * Set refProfil
     *
     * @param \RecetteAnne\ApplicationBundle\Entity\Profil $refProfil
     * @return Utilisateur
     */
    public function setRefProfil(\RecetteAnne\ApplicationBundle\Entity\Profil $refProfil = null) {
        $this->refProfil = $refProfil;

        return $this;
    }

    /**
     * Get refProfil
     *
     * @return \RecetteAnne\ApplicationBundle\Entity\Profil 
     */
    public function getRefProfil() {
        return $this->refProfil;
    }

}
